<?php
namespace core\models;
/**
 * 缓存接口
 * @author ZhouHaoHua <53027327@qq.com>
 */
interface Interface_Cache{
    /**
     * 增加一个条目到缓存
     * @param     $key
     * @param     $var
     * @param int $flag
     * @param int $expire
     * @return
     */
    public function add ($key, $var, $flag = 0, $expire = 2592000);

    /**
     * 保存数据到缓存
     * @param     $key
     * @param     $var
     * @param int $flag
     * @param int $expire
     * @return
     */
    public function set ($key, $var, $flag = 0, $expire = 2592000) ;

    /**
     * 取得一条缓存数据
     * @param      $key
     * @param bool $flags
     * @return
     */
    public function get ($key, &$flags = false);

    /**
     * 替换一条缓存记录
     * @param     $key
     * @param     $var
     * @param int $flag
     * @param int $expire
     * @return
     */
    public function replace ($key, $var, $flag = 0, $expire = 2592000);

    /**
     * 清空缓存数据
     */
    public function flush ();

    /**
     * 删除一条缓存记录
     * @param     $key
     * @param int $timeout
     * @return
     */
    public function delete ($key, $timeout = 0);

    /**
     * 增加元素
     * @param     $key
     * @param int $value
     * @return
     */
    public function increment ($key , $value = 1);

    /**
     * 减少元素的值
     * @param     $key
     * @param int $value
     * @return
     */
    public function decrement ($key, $value = 1);

    /**
     * 取得当前缓存的类型名称
     * @return string
     */
    public function getType();
}